const express = require('express')
const hbs = require("hbs")
const techRouter = require('./router/tech');
const loggingMiddleware = require('./middleware/loggingMiddleware')
const app = express()
const hostname = 'localhost';
const port = "9000"


// 静态文件服务
// 可以分别通过以下路径访问:
// http://localhost:9000/css/style.css
// http://localhost:9000/img/weather.webp
app.use(express.static('./static'));

// 指定模板存放目录
app.set('views', './templates');

// 指定模板引擎为 Handlebars
app.set('view engine', 'hbs');

// 注册一个中间件
app.use(loggingMiddleware)

// 由于 Express 中“万物皆中间件”的思想，一个 Router 也作为中间件加入到 app 中
app.use('/tech',techRouter)


// * 表示匹配任何路径。将此中间件放在所有路由后面，即可捕获所有访问路径均匹配失败的请求。
app.use('*',(req,res)=>{
  // 渲染名称为 404.hbs 的模板
  res.status(404).render('404',{url:req.originalUrl})
})


app.listen(port,()=>{
  console.log(`Server running at http://${hostname}:${port}`)
})